package org.Niu;

import java.util.Arrays;
import java.util.List;
import java.util.Vector;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class StringExercise {
    public static void main(String[] args) {

        // 多行字符串
        String s = """
                   SELECT * FROM
                     users
                   WHERE id > 100
                   ORDER BY name DESC""";
//        System.out.println("s = " + s);

        // 指向的是地址
        // 基本类型的变量是“持有”某个数值，引用类型的变量是“指向”某个对象；
        String s2 = "hello";
        String t = s2;
        s2 = "world";
//        System.out.println(t); // t是"hello"还是"world"?

        // 请将下面一组int值视为字符的Unicode码，把它们拼成一个字符串：
        int a = 72;
        int b = 105;
        int c = 65281;
        // FIXME:
        String s3 = "" + (char)a  +  (char)b + (char)c;
//        System.out.println(s3);
        int[] studentNum = new int[30];
//        System.out.println(studentNum.length);

        // 不能同时初始化内容 和 声明长度
        int[] stuScore = new int[]{99,98,69,55,31};
        // 简写形式
        int[] stuScore2 = {100,99,98,97,76,88};
        // 泛型只能是对象类型，不能是基本类型
//        List<int[]> list1 = Arrays.asList(stuScore2);
        Integer[] num = new Integer[]{100,200,300,400,500};
        List<Integer> list1 = Arrays.asList(num);
//        System.out.println(list1);
        // 将一个int[] 数组转化成 Integer[]
        Integer[] array2 = Arrays.stream(stuScore2).boxed().toArray(Integer[]::new);
        // 输出数组的方法
        System.out.println(Arrays.toString(array2));
//        for (item : ){
//
//        }
        for (int item : stuScore) {
//            System.out.println("item = " + item);
        }

        Vector<Integer> vector = new Vector<>();
        // 练习：生成一个从 2 - 202 的数组
        for (int i = 2; i <= 202; i++){
            vector.add(i);
        }
        for (Integer item : vector) {
//            System.out.println(item);
        }

        int[] array = IntStream.rangeClosed(2, 202).toArray();
        List<Integer> list = IntStream.rangeClosed(2, 202).boxed().collect(Collectors.toList());
//        System.out.println(Arrays.toString(array));
//        System.out.println(list);

        // 方法一：stream流
        int[] array1 = IntStream.rangeClosed(2, 202).toArray();
        System.out.println(Arrays.toString(array1));

        List<Integer> collect = IntStream.range(2, 203).boxed().collect(Collectors.toList());
        System.out.println(collect);


        String[] names = {"ABC", "XYZ", "zoo"};
        String s4 = names[1];
        names[1] = "cat";
        System.out.println(s4); // s是"XYZ"还是"cat"?
        // 盲猜一波 XYZ
    }


}
